/*
  @description: 测试Google浏览器
 * @author: L.Wen
 * @create: 2018-09-30 09:54
 */

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;

/**
 * UI自动化功能测试脚本：启动 Chrome 浏览器
 * <p>
 * 实现 Chrome 浏览器启动的步骤如下：
 * 1.设定需要启动的 Chrome 的安装路径
 * 2.设定 Chrome 对应的 webdriver
 * 3.启动 Chrome, 并最大化
 * 4.打开百度
 * 5.关闭并退出
 */
public class StartBrowserChrome {
    private static WebDriver cd;
    private static String baseUrl;   // 百度首页网址

    @Test
    public static void testChrome() throws InterruptedException {
        /* 启动 chrome */
        chromeStart();
        /* 打开百度 */
        cd.get(baseUrl);
        /* 找到搜索框 */
        WebElement webElement = cd.findElement(By.xpath("//input[@id = \"kw\"]"));
        /* 输入搜索内容 */
        webElement.sendKeys("https://mpv.io/manual/master/#configuration-files");
        /* 找到 百度一下 按钮 */
        webElement = cd.findElement(By.xpath("//*[@id=\"su\"]"));
        /* 点击按钮 */
        webElement.click();
        Thread.sleep(3001);
        /* 等待加载 */
        cd.manage().timeouts().implicitlyWait(15, TimeUnit.MINUTES);
        /* 关闭 chrome */
//        chromeQuit();
    }

    /**
     * Chrome WebDriver 设置, 网址及搜索内容初始化, 打开 Chrome 浏览器
     */
    private static void chromeStart() {
        /* 设定 chrome浏览器 启动文件的位置, 若未设定则取默认安装目录的 chrome */
        System.setProperty("webdriver.chrome.bin", "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe");
        /* 设定 chrome webdriver 的位置 */
        System.setProperty("webdriver.chrome.driver", "C:\\Programs\\chromedriver_win32\\chromedriver.exe");
        /* 百度首页网址赋值 */
        baseUrl = "http://www.baidu.com/";
        /* 启动 chrome 浏览器 */
        cd = new ChromeDriver();
        /* 浏览器最大化 */
        cd.manage().window().maximize();
    }

    /**
     * 关闭并退出 Chrome
     */
    public static void chromeQuit() {
        /* 关闭 chrome */
        cd.close();
        /* 退出 chrome */
        cd.quit();
    }
}